home *** CD-ROM | disk | FTP | other *** search
/ Compendium Deluxe 1 / LSD Compendium Deluxe 1.iso / a / programming / amigae / mac2e_v31.lha / Mac2E / MacroFiles / mui.e < prev   
Encoding:
Text File  |  1994-07-12  |  51.6 KB  |  1,620 lines

  1. ****************************************************************************
  2. **
  3. ** MUI - MagicUserInterface
  4. ** (c) 1993 by Stefan Stuntz
  5. **
  6. ** Main Header File
  7. **
  8. ****************************************************************************
  9. **
  10. ** This file is a modified version of the orginal mui.h file (provided with
  11. ** MUI v2.1) in order to be used in E programs.
  12. **
  13. ** '$VER: mui_e 1.3 (11.07.94)'
  14. **
  15. ** July 1994, Lionel Vintenat
  16. **
  17. ****************************************************************************
  18. ** Class Tree
  19. ****************************************************************************
  20. **
  21. ** rootclass               (BOOPSI's base class)
  22. ** +--Notify               (implements notification mechanism)
  23. **      +--Family            (handles multiple children)
  24. **      !  +--Menustrip       (describes a complete menu strip)
  25. **      !  +--Menu           (describes a single menu)
  26. **      !  \--Menuitem       (describes a single menu item)
  27. **      +--Application       (main class for all applications)
  28. **      +--Window            (handles intuition window related topics)
  29. **      +--Area               (base class for all GUI elements)
  30. **         +--Rectangle       (creates (empty) rectangles)
  31. **         +--Image           (creates images)
  32. **         +--Text           (creates some text)
  33. **         +--String           (creates a string gadget)
  34. **         +--Prop           (creates a proportional gadget)
  35. **         +--Gauge           (creates a fule gauge)
  36. **         +--Scale           (creates a percentage scale)
  37. **         +--Boopsi           (interface to BOOPSI gadgets)
  38. **         +--Colorfield       (creates a field with changeable color)
  39. **         +--List           (creates a line-oriented list)
  40. **         !    +--Floattext   (special list with floating text)
  41. **         !    +--Volumelist  (special list with volumes)
  42. **         !    +--Scrmodelist (special list with screen modes)
  43. **         !    \--Dirlist       (special list with files)
  44. **         +--Group           (groups other GUI elements)
  45. **            +--Register    (handles page groups with titles)
  46. **            +--Virtgroup   (handles virtual groups)
  47. **            +--Scrollgroup (handles virtual groups with scrollers)
  48. **            +--Scrollbar   (creates a scrollbar)
  49. **            +--Listview    (creates a listview)
  50. **            +--Radio       (creates radio buttons)
  51. **            +--Cycle       (creates cycle gadgets)
  52. **            +--Slider       (creates slider gadgets)
  53. **            +--Coloradjust (creates some RGB sliders)
  54. **            +--Palette       (creates a complete palette gadget)
  55. **            +--Colorpanel  (creates a panel of colors)
  56. **            +--Popstring   (base class for popups)
  57. **               +--Popobject(popup a MUI object in a window)
  58. **               \--Popasl   (popup an asl requester)
  59. **
  60. ****************************************************************************
  61. ** General Header File Information
  62. ****************************************************************************
  63. **
  64. ** All macro and structure definitions follow these rules:
  65. **
  66. ** Name                       Meaning
  67. **
  68. ** MUIC_<class>               Name of a class
  69. ** MUIM_<class>_<method>      Method
  70. ** MUIP_<class>_<method>      Methods parameter structure
  71. ** MUIV_<class>_<method>_<x>  Special method value
  72. ** MUIA_<class>_<attrib>      Attribute
  73. ** MUIV_<class>_<attrib>_<x>  Special attribute value
  74. ** MUIE_<error>               Error return code from MUI_Error()
  75. ** MUII_<name>                  Standard MUI image
  76. ** MUIX_<code>                  Control codes for text strings
  77. ** MUIO_<name>                  Object type for MUI_MakeObject()
  78. **
  79. ** MUIA_... attribute definitions are followed by a comment
  80. ** consisting of the three possible letters I, S and G.
  81. ** I: it's possible to specify this attribute at object creation time.
  82. ** S: it's possible to change this attribute with SetAttrs().
  83. ** G: it's possible to get this attribute with GetAttr().
  84. **
  85. ** Items marked with "Custom Class" are for use in custom classes only!
  86.  
  87.  
  88.  
  89. ***************************************************************************
  90. ** Library specification
  91. ***************************************************************************
  92.  
  93. #define MUIMASTER_NAME    'muimaster.library'
  94. #define MUIMASTER_VMIN 8
  95.  
  96. ** !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  97. ** Warning, the macros in this header file work only with muimaster.library
  98. ** V8 and above. If you recompile your programs, be sure to open
  99. ** muimaster.library with MUIMASTER_VMIN as version number.
  100. ** !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  101.  
  102.  
  103.  
  104. ****************************************************************************
  105. ** Object Types for MUI_MakeObject()
  106. ****************************************************************************
  107.  
  108. #define MUIO_Label          1
  109. #define MUIO_Button       2
  110. #define MUIO_Checkmark      3
  111. #define MUIO_Cycle          4
  112. #define MUIO_Radio          5
  113. #define MUIO_Slider       6
  114. #define MUIO_String       7
  115. #define MUIO_PopButton      8
  116. #define MUIO_HSpace       9
  117. #define MUIO_VSpace      10
  118. #define MUIO_HBar         11
  119. #define MUIO_VBar         12
  120. #define MUIO_MenustripNM 13
  121. #define MUIO_Menuitem     14
  122. #define MUIO_BarTitle     15
  123.  
  124. #define MUIO_Label_SingleFrame %100000000
  125. #define MUIO_Label_DoubleFrame %1000000000
  126. #define MUIO_Label_LeftAligned %10000000000
  127.  
  128.  
  129.  
  130. ****************************************************************************
  131. ** ARexx Interface
  132. ****************************************************************************
  133.  
  134. #define MC_TEMPLATE_ID -1
  135.  
  136. #define MUI_RXERR_BADDEFINITION  -1
  137. #define MUI_RXERR_OUTOFMEMORY     -2
  138. #define MUI_RXERR_UNKNOWNCOMMAND -3
  139. #define MUI_RXERR_BADSYNTAX      -4
  140.  
  141.  
  142.  
  143. ****************************************************************************
  144. ** Return values for MUI_Error()
  145. ****************************************************************************
  146.  
  147. #define MUIE_OK                  0
  148. #define MUIE_OutOfMemory         1
  149. #define MUIE_OutOfGfxMemory      2
  150. #define MUIE_InvalidWindowObject 3
  151. #define MUIE_MissingLibrary      4
  152. #define MUIE_NoARexx             5
  153. #define MUIE_SingleTask          6
  154.  
  155.  
  156.  
  157. ****************************************************************************
  158. ** Standard MUI Images
  159. ****************************************************************************
  160.  
  161.                 * These images are configured    *
  162.                 * with the preferences program. *
  163. #define MUII_WindowBack     0
  164. #define MUII_RequesterBack    1
  165. #define MUII_ButtonBack     2
  166. #define MUII_ListBack        3
  167. #define MUII_TextBack        4
  168. #define MUII_PropBack        5
  169. #define MUII_ActiveBack     6
  170. #define MUII_SelectedBack    7
  171. #define MUII_ListCursor     8
  172. #define MUII_ListSelect     9
  173. #define MUII_ListSelCur    10
  174. #define MUII_ArrowUp       11
  175. #define MUII_ArrowDown       12
  176. #define MUII_ArrowLeft       13
  177. #define MUII_ArrowRight    14
  178. #define MUII_CheckMark       15
  179. #define MUII_RadioButton   16
  180. #define MUII_Cycle           17
  181. #define MUII_PopUp           18
  182. #define MUII_PopFile       19
  183. #define MUII_PopDrawer       20
  184. #define MUII_PropKnob       21
  185. #define MUII_Drawer        22
  186. #define MUII_HardDisk       23
  187. #define MUII_Disk           24
  188. #define MUII_Chip           25
  189. #define MUII_Volume        26
  190. #define MUII_PopUpBack       27
  191. #define MUII_Network       28
  192. #define MUII_Assign        29
  193. #define MUII_TapePlay       30
  194. #define MUII_TapePlayBack  31
  195. #define MUII_TapePause       32
  196. #define MUII_TapeStop       33
  197. #define MUII_TapeRecord    34
  198. #define MUII_GroupBack       35
  199. #define MUII_SliderBack    36
  200. #define MUII_SliderKnob    37
  201. #define MUII_TapeUp        38
  202. #define MUII_TapeDown       39
  203. #define MUII_Count           40
  204.  
  205.                 * These are direct color    *
  206.                 * combinations and are not    *
  207.                 * affected by users prefs.    *
  208.                 * Generally, you should     *
  209.                 * avoid using them. Better    *
  210.                 * use one of the customized *
  211.                 * images above.             *
  212. #define MUII_BACKGROUND    128
  213. #define MUII_SHADOW        129
  214. #define MUII_SHINE           130
  215. #define MUII_FILL           131
  216. #define MUII_SHADOWBACK    132
  217. #define MUII_SHADOWFILL    133
  218. #define MUII_SHADOWSHINE   134
  219. #define MUII_FILLBACK       135
  220. #define MUII_FILLSHINE       136
  221. #define MUII_SHINEBACK       137
  222. #define MUII_FILLBACK2       138
  223. #define MUII_HSHINEBACK    139
  224. #define MUII_HSHADOWBACK   140
  225. #define MUII_HSHINESHINE   141
  226. #define MUII_HSHADOWSHADOW 142
  227. #define MUII_LASTPAT       142
  228. *#define MUII_N1HSHINE        143*
  229.  
  230.  
  231.  
  232. ****************************************************************************
  233. ** Special values for some methods
  234. ****************************************************************************
  235.  
  236. #define MUIV_TriggerValue    $49893131
  237. #define MUIV_NotTriggerValue    $49893133
  238. #define MUIV_EveryTime        $49893131
  239.  
  240. #define MUIV_Application_Save_ENV      NIL
  241. #define MUIV_Application_Save_ENVARC  -1
  242. #define MUIV_Application_Load_ENV      NIL
  243. #define MUIV_Application_Load_ENVARC  -1
  244.  
  245. #define MUIV_Application_ReturnID_Quit -1
  246.  
  247. #define MUIV_List_Insert_Top             0
  248. #define MUIV_List_Insert_Active         -1
  249. #define MUIV_List_Insert_Sorted         -2
  250. #define MUIV_List_Insert_Bottom         -3
  251.  
  252. #define MUIV_List_Remove_First             0
  253. #define MUIV_List_Remove_Active         -1
  254. #define MUIV_List_Remove_Last            -2
  255.  
  256. #define MUIV_List_Select_Off             0
  257. #define MUIV_List_Select_On              1
  258. #define MUIV_List_Select_Toggle          2
  259. #define MUIV_List_Select_Ask             3
  260.  
  261. #define MUIV_List_Jump_Active            -1
  262. #define MUIV_List_GetEntry_Active        -1
  263. #define MUIV_List_Select_Active         -1
  264. #define MUIV_List_Select_All            -2
  265.  
  266. #define MUIV_List_Redraw_Active         -1
  267. #define MUIV_List_Redraw_All            -2
  268.  
  269. #define MUIV_List_Exchange_Active        -1
  270.  
  271. #define MUIV_Colorpanel_GetColor_Active -1
  272. #define MUIV_Colorpanel_SetColor_Active -1
  273.  
  274.  
  275.  
  276. ****************************************************************************
  277. ** Control codes for text strings
  278. ****************************************************************************
  279.  
  280.                         * right justified *
  281. #define MUIX_R    '\er'
  282.                         * centered          *
  283. #define MUIX_C    '\ec'
  284.                         * left justified  *
  285. #define MUIX_L    '\el'
  286.  
  287.                         * normal     *
  288. #define MUIX_N    '\en'
  289.                         * bold         *
  290. #define MUIX_B    '\eb'
  291.                         * italic     *
  292. #define MUIX_I    '\ei'
  293.                         * underlined *
  294. #define MUIX_U    '\eu'
  295.  
  296.                         * text pen             *
  297. #define MUIX_PT '\e2'
  298.                         * highlight text pen *
  299. #define MUIX_PH '\e8'
  300.  
  301.  
  302.  
  303. /***************************************************************************
  304. ** Parameter structures for some classes
  305. ***************************************************************************/
  306.  
  307. #define MUIV_Palette_Entry_End -1
  308.  
  309.  
  310.  
  311. ***************************************************************************
  312. **
  313. ** Macro Section
  314. ** -------------
  315. **
  316. ** To make GUI creation more easy and understandable, you can use the
  317. ** macros below.
  318. **
  319. ***************************************************************************
  320.  
  321. ***************************************************************************
  322. **
  323. ** Object Generation
  324. ** -----------------
  325. **
  326. ** The xxxObject (and xChilds) macros generate new instances of MUI classes.
  327. ** Every xxxObject can be followed by tagitems specifying initial create
  328. ** time attributes for the new object and must be terminated with the
  329. ** End macro:
  330. **
  331. ** obj = StringObject,
  332. **            MUIA_String_Contents, "foo",
  333. **            MUIA_String_MaxLen    , 40,
  334. **            End;
  335. **
  336. ** With the Child, SubWindow and WindowContents shortcuts you can
  337. ** construct a complete GUI within one command:
  338. **
  339. ** app = ApplicationObject,
  340. **
  341. **            ...
  342. **
  343. **            SubWindow, WindowObject,
  344. **               WindowContents, VGroup,
  345. **                  Child, String("foo",40),
  346. **                  Child, String("bar",50),
  347. **                  Child, HGroup,
  348. **                     Child, CheckMark(TRUE),
  349. **                     Child, CheckMark(FALSE),
  350. **                     End,
  351. **                  End,
  352. **               End,
  353. **
  354. **            SubWindow, WindowObject,
  355. **               WindowContents, HGroup,
  356. **                  Child, ...,
  357. **                  Child, ...,
  358. **                  End,
  359. **               End,
  360. **
  361. **            ...
  362. **
  363. **            End;
  364. **
  365. ***************************************************************************
  366.  
  367. #define MenustripObject   Mui_NewObjectA('Menustrip.mui', [TAG_IGNORE, 0
  368. #define MenuObject          Mui_NewObjectA('Menu.mui', [TAG_IGNORE, 0
  369. #define MenuObjectT(name) Mui_NewObjectA('Menu.mui', [MUIA_Menu_Title, name
  370. #define MenuitemObject      Mui_NewObjectA('Menuitem.mui', [TAG_IGNORE, 0
  371. #define WindowObject      Mui_NewObjectA('Window.mui', [TAG_IGNORE, 0
  372. #define ImageObject       Mui_NewObjectA('Image.mui', [TAG_IGNORE, 0
  373. #define BitmapObject      Mui_NewObjectA('Bitmap.mui', [TAG_IGNORE, 0
  374. #define BodychunkObject   Mui_NewObjectA('Bodychunk.mui', [TAG_IGNORE, 0
  375. #define NotifyObject      Mui_NewObjectA('Notify.mui', [TAG_IGNORE, 0
  376. #define ApplicationObject Mui_NewObjectA('Application.mui', [TAG_IGNORE, 0
  377. #define TextObject          Mui_NewObjectA('Text.mui', [TAG_IGNORE, 0
  378. #define RectangleObject   Mui_NewObjectA('Rectangle.mui', [TAG_IGNORE, 0
  379. #define ListObject          Mui_NewObjectA('List.mui', [TAG_IGNORE, 0
  380. #define PropObject          Mui_NewObjectA('Prop.mui', [TAG_IGNORE, 0
  381. #define StringObject      Mui_NewObjectA('String.mui', [TAG_IGNORE, 0
  382. #define ScrollbarObject   Mui_NewObjectA('Scrollbar.mui', [TAG_IGNORE, 0
  383. #define ListviewObject      Mui_NewObjectA('Listview.mui', [TAG_IGNORE, 0
  384. #define RadioObject       Mui_NewObjectA('Radio.mui', [TAG_IGNORE, 0
  385. #define VolumelistObject  Mui_NewObjectA('Volumelist.mui', [TAG_IGNORE, 0
  386. #define FloattextObject   Mui_NewObjectA('Floattext.mui', [TAG_IGNORE, 0
  387. #define DirlistObject      Mui_NewObjectA('Dirlist.mui', [TAG_IGNORE, 0
  388. #define SliderObject      Mui_NewObjectA('Slider.mui', [TAG_IGNORE, 0
  389. #define CycleObject       Mui_NewObjectA('Cycle.mui', [TAG_IGNORE, 0
  390. #define GaugeObject       Mui_NewObjectA('Gauge.mui', [TAG_IGNORE, 0
  391. #define ScaleObject       Mui_NewObjectA('Scale.mui', [TAG_IGNORE, 0
  392. #define BoopsiObject      Mui_NewObjectA('Boopsi.mui', [TAG_IGNORE, 0
  393. #define ColorfieldObject  Mui_NewObjectA('Colorfield.mui', [TAG_IGNORE, 0
  394. #define ColorpanelObject  Mui_NewObjectA('Colorpanel.mui', [TAG_IGNORE, 0
  395. #define ColoradjustObject Mui_NewObjectA('Coloradjust.mui', [TAG_IGNORE, 0
  396. #define PaletteObject      Mui_NewObjectA('Palette.mui', [TAG_IGNORE, 0
  397. #define GroupObject       Mui_NewObjectA('Group.mui', [TAG_IGNORE, 0
  398. #define RegisterObject      Mui_NewObjectA('Register.mui', [TAG_IGNORE, 0
  399. #define VirtgroupObject   Mui_NewObjectA('Virtgroup.mui', [TAG_IGNORE, 0
  400. #define ScrollgroupObject Mui_NewObjectA('Scrollgroup.mui', [TAG_IGNORE, 0
  401. #define PopstringObject   Mui_NewObjectA('Popstring.mui', [TAG_IGNORE, 0
  402. #define PopobjectObject   Mui_NewObjectA('Popobject.mui', [TAG_IGNORE, 0
  403. #define PoplistObject      Mui_NewObjectA('Poplist.mui', [TAG_IGNORE, 0
  404. #define PopaslObject      Mui_NewObjectA('Popasl.mui', [TAG_IGNORE, 0
  405. #define ScrmodelistObject Mui_NewObjectA('Scrmodelist.mui', [TAG_IGNORE, 0
  406. #define VGroup              Mui_NewObjectA('Group.mui', [TAG_IGNORE, 0
  407. #define HGroup              Mui_NewObjectA('Group.mui', [MUIA_Group_Horiz, MUI_TRUE
  408. #define ColGroup(cols)      Mui_NewObjectA('Group.mui', [MUIA_Group_Columns, (cols)
  409. #define RowGroup(rows)      Mui_NewObjectA('Group.mui', [MUIA_Group_Rows, (rows)
  410. #define PageGroup          Mui_NewObjectA('Group.mui', [MUIA_Group_PageMode, MUI_TRUE
  411. #define VGroupV           Mui_NewObjectA('Virtgroup.mui', [TAG_IGNORE, 0
  412. #define HGroupV           Mui_NewObjectA('Virtgroup.mui', [MUIA_Group_Horiz, MUI_TRUE
  413. #define ColGroupV(cols)   Mui_NewObjectA('Virtgroup.mui', [MUIA_Group_Columns, (cols)
  414. #define RowGroupV(rows)   Mui_NewObjectA('Virtgroup.mui', [MUIA_Group_Rows, (rows)
  415. #define PageGroupV          Mui_NewObjectA('Virtgroup.mui', [MUIA_Group_PageMode, MUI_TRUE
  416. #define RegisterGroup(t)  Mui_NewObjectA('Register.mui', [MUIA_Register_Titles, (t)
  417. #define End               TAG_DONE])
  418.  
  419. #define Child              MUIA_Group_Child
  420. #define SubWindow          MUIA_Application_Window
  421. #define WindowContents      MUIA_Window_RootObject
  422.  
  423.  
  424.  
  425. ***************************************************************************
  426. **
  427. ** Frame Types
  428. ** -----------
  429. **
  430. ** These macros may be used to specify one of MUI's different frame types.
  431. ** Note that every macro consists of one { ti_Tag, ti_Data } pair.
  432. **
  433. ** GroupFrameT() is a special kind of frame that contains a centered
  434. ** title text.
  435. **
  436. ** HGroup, GroupFrameT("Horiz Groups"),
  437. **      Child, RectangleObject, TextFrame  , End,
  438. **      Child, RectangleObject, StringFrame, End,
  439. **      Child, RectangleObject, ButtonFrame, End,
  440. **      Child, RectangleObject, ListFrame  , End,
  441. **      End,
  442. **
  443. ***************************************************************************
  444.  
  445. #define NoFrame          MUIA_Frame, MUIV_Frame_None
  446. #define ButtonFrame      MUIA_Frame, MUIV_Frame_Button
  447. #define ImageButtonFrame MUIA_Frame, MUIV_Frame_ImageButton
  448. #define TextFrame         MUIA_Frame, MUIV_Frame_Text
  449. #define StringFrame      MUIA_Frame, MUIV_Frame_String
  450. #define ReadListFrame     MUIA_Frame, MUIV_Frame_ReadList
  451. #define InputListFrame     MUIA_Frame, MUIV_Frame_InputList
  452. #define PropFrame         MUIA_Frame, MUIV_Frame_Prop
  453. #define SliderFrame      MUIA_Frame, MUIV_Frame_Slider
  454. #define GaugeFrame         MUIA_Frame, MUIV_Frame_Gauge
  455. #define VirtualFrame     MUIA_Frame, MUIV_Frame_Virtual
  456. #define GroupFrame         MUIA_Frame, MUIV_Frame_Group
  457. #define GroupFrameT(s)     MUIA_Frame, MUIV_Frame_Group, MUIA_FrameTitle, s
  458.  
  459.  
  460.  
  461. ***************************************************************************
  462. **
  463. ** Spacing Macros
  464. ** --------------
  465. **
  466. ***************************************************************************
  467.  
  468. #define HVSpace           Mui_NewObjectA('Rectangle.mui', [TAG_DONE])
  469. #define HSpace(x)          Mui_MakeObjectA(MUIO_HSpace, [x])
  470. #define VSpace(x)          Mui_MakeObjectA(MUIO_VSpace, [x])
  471. #define HCenter(obj)      (HGroup, GroupSpacing(0), Child, HSpace(0), Child, (obj), Child, HSpace(0), End)
  472. #define VCenter(obj)      (VGroup, GroupSpacing(0), Child, VSpace(0), Child, (obj), Child, VSpace(0), End)
  473. #define InnerSpacing(h,v) MUIA_InnerLeft, (h), MUIA_InnerRight, (h), MUIA_InnerTop, (v), MUIA_InnerBottom, (v)
  474. #define GroupSpacing(x)   MUIA_Group_Spacing, x
  475.  
  476.  
  477.  
  478. ***************************************************************************
  479. **
  480. ** String-Object
  481. ** -------------
  482. **
  483. ** The following macro creates a simple string gadget.
  484. **
  485. ***************************************************************************
  486.         !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  487.         !!!!! Be careful, I renamed String macro to StringMUI, to avoid conflicts with E String() function !!!!!
  488.         !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  489. #define StringMUI(contents,maxlen)\
  490.         StringObject, \
  491.                 StringFrame, \
  492.                 MUIA_String_MaxLen, maxlen, \
  493.                 MUIA_String_Contents, contents, \
  494.                 End
  495.  
  496. #define KeyString(contents,maxlen,controlchar)\
  497.         StringObject, \
  498.                 StringFrame, \
  499.                 MUIA_ControlChar, controlchar, \
  500.                 MUIA_String_MaxLen, maxlen, \
  501.                 MUIA_String_Contents, contents, \
  502.                 End
  503.  
  504.  
  505.  
  506. ***************************************************************************
  507. **
  508. ** CheckMark-Object
  509. ** ----------------
  510. **
  511. ** The following macro creates a checkmark gadget.
  512. **
  513. ***************************************************************************
  514.  
  515. #define CheckMark(selected)\
  516.         ImageObject, \
  517.                 ImageButtonFrame, \
  518.                 MUIA_InputMode, MUIV_InputMode_Toggle, \
  519.                 MUIA_Image_Spec, MUII_CheckMark, \
  520.                 MUIA_Image_FreeVert, MUI_TRUE, \
  521.                 MUIA_Selected, selected, \
  522.                 MUIA_Background, MUII_ButtonBack, \
  523.                 MUIA_ShowSelState, FALSE, \
  524.                 End
  525.  
  526. #define KeyCheckMark(selected,control)\
  527.         ImageObject, \
  528.                 ImageButtonFrame, \
  529.                 MUIA_InputMode, MUIV_InputMode_Toggle, \
  530.                 MUIA_Image_Spec, MUII_CheckMark, \
  531.                 MUIA_Image_FreeVert, MUI_TRUE, \
  532.                 MUIA_Selected, selected, \
  533.                 MUIA_Background, MUII_ButtonBack, \
  534.                 MUIA_ShowSelState, FALSE, \
  535.                 MUIA_ControlChar, control, \
  536.                 End
  537.  
  538.  
  539.  
  540. ***************************************************************************
  541. **
  542. ** Button-Objects
  543. ** --------------
  544. **
  545. ** Note: Use small letters for KeyButtons, e.g.
  546. **         KeyButton("Cancel",'c')  and not  KeyButton("Cancel",'C') !!
  547. **
  548. ***************************************************************************
  549.  
  550. #define SimpleButton(label) Mui_MakeObjectA(MUIO_Button, [label])
  551.  
  552. #define KeyButton(name,key)\
  553.         TextObject, \
  554.                 ButtonFrame, \
  555.                 MUIA_Text_Contents, name, \
  556.                 MUIA_Text_PreParse, '\ec', \
  557.                 MUIA_Text_HiChar, key, \
  558.                 MUIA_ControlChar, key, \
  559.                 MUIA_InputMode, MUIV_InputMode_RelVerify, \
  560.                 MUIA_Background, MUII_ButtonBack, \
  561.                 End
  562.  
  563.  
  564.  
  565. ***************************************************************************
  566. **
  567. ** Cycle-Object
  568. ** ------------
  569. **
  570. ***************************************************************************
  571.  
  572. #define Cycle(entries)          CycleObject, MUIA_Cycle_Entries, entries, End
  573. #define KeyCycle(entries,key) CycleObject, MUIA_Cycle_Entries, entries, MUIA_ControlChar, key, End
  574.  
  575.  
  576.  
  577. ***************************************************************************
  578. **
  579. ** Radio-Object
  580. ** ------------
  581. **
  582. ***************************************************************************
  583.  
  584. #define Radio(name,array)\
  585.         RadioObject, \
  586.                 GroupFrameT(name), \
  587.                 MUIA_Radio_Entries, array, \
  588.                 End
  589.  
  590. #define KeyRadio(name,array,key)\
  591.         RadioObject, \
  592.                 GroupFrameT(name), \
  593.                 MUIA_Radio_Entries, array, \
  594.                 MUIA_ControlChar, key, \
  595.                 End
  596.  
  597.  
  598. ***************************************************************************
  599. **
  600. ** Slider-Object
  601. ** -------------
  602. **
  603. ***************************************************************************
  604.  
  605. #define Slider(min,max,level)\
  606.         SliderObject, \
  607.                 MUIA_Slider_Min, min, \
  608.                 MUIA_Slider_Max, max, \
  609.                 MUIA_Slider_Level, level, \
  610.                 End
  611.  
  612. #define KeySlider(min,max,level,key)\
  613.         SliderObject, \
  614.                 MUIA_Slider_Min, min, \
  615.                 MUIA_Slider_Max, max, \
  616.                 MUIA_Slider_Level, level, \
  617.                 MUIA_ControlChar, key, \
  618.                 End
  619.  
  620.  
  621.  
  622. ****************************************************************************
  623. **
  624. ** Button to be used for popup objects
  625. **
  626. ****************************************************************************
  627.  
  628. #define PopButton(img) Mui_MakeObjectA(MUIO_PopButton, [img])
  629.  
  630.  
  631.  
  632. ***************************************************************************
  633. **
  634. ** Labeling Objects
  635. ** ----------------
  636. **
  637. ** Labeling objects, e.g. a group of string gadgets,
  638. **
  639. **     Small: |foo   |
  640. **    Normal: |bar   |
  641. **       Big: |foobar|
  642. **      Huge: |barfoo|
  643. **
  644. ** is done using a 2 column group:
  645. **
  646. ** ColGroup(2),
  647. **        Child, Label2("Small:" ),
  648. **      Child, StringObject, End,
  649. **        Child, Label2("Normal:"),
  650. **      Child, StringObject, End,
  651. **        Child, Label2("Big:"   ),
  652. **      Child, StringObject, End,
  653. **        Child, Label2("Huge:"  ),
  654. **      Child, StringObject, End,
  655. **      End,
  656. **
  657. ** Note that we have three versions of the label macro, depending on
  658. ** the frame type of the right hand object:
  659. **
  660. ** Label1(): For use with standard frames (e.g. checkmarks).
  661. ** Label2(): For use with double high frames (e.g. string gadgets).
  662. ** Label() : For use with objects without a frame.
  663. **
  664. ** These macros ensure that your label will look fine even if the
  665. ** user of your application configured some strange spacing values.
  666. ** If you want to use your own labeling, you'll have to pay attention
  667. ** on this topic yourself.
  668. **
  669. ***************************************************************************
  670.  
  671. #define Label(label)    Mui_MakeObjectA(MUIO_Label, [label, 0])
  672. #define Label1(label)    Mui_MakeObjectA(MUIO_Label, [label, MUIO_Label_SingleFrame])
  673. #define Label2(label)    Mui_MakeObjectA(MUIO_Label, [label, MUIO_Label_DoubleFrame])
  674. #define LLabel(label)    Mui_MakeObjectA(MUIO_Label, [label, MUIO_Label_LeftAligned])
  675. #define LLabel1(label)    Mui_MakeObjectA(MUIO_Label, [label, MUIO_Label_LeftAligned OR MUIO_Label_SingleFrame])
  676. #define LLabel2(label)    Mui_MakeObjectA(MUIO_Label, [label, MUIO_Label_LeftAligned OR MUIO_Label_DoubleFrame])
  677.  
  678. #define KeyLabel(label,key)    Mui_MakeObjectA(MUIO_Label, [label, key)
  679. #define KeyLabel1(label,key)    Mui_MakeObjectA(MUIO_Label, [label, MUIO_Label_SingleFrame OR (key)])
  680. #define KeyLabel2(label,key)    Mui_MakeObjectA(MUIO_Label, [label, MUIO_Label_DoubleFrame OR (key)])
  681. #define KeyLLabel(label,key)    Mui_MakeObjectA(MUIO_Label, [label, MUIO_Label_LeftAligned OR (key)])
  682. #define KeyLLabel1(label,key)    Mui_MakeObjectA(MUIO_Label, [label, MUIO_Label_LeftAligned OR MUIO_Label_SingleFrame OR (key)])
  683. #define KeyLLabel2(label,key)    Mui_MakeObjectA(MUIO_Label, [label, MUIO_Label_LeftAligned OR MUIO_Label_DoubleFrame OR (key)])
  684.  
  685.  
  686.  
  687. ***************************************************************************
  688. **
  689. ** Controlling Objects
  690. ** -------------------
  691. **
  692. ** set() and get() are two short stubs for BOOPSI GetAttr() and SetAttrs()
  693. ** calls:
  694. **
  695. ** {
  696. **      char *x;
  697. **
  698. **      set(obj,MUIA_String_Contents,"foobar");
  699. **      get(obj,MUIA_String_Contents,&x);
  700. **
  701. **      printf("gadget contains '%s'\n",x);
  702. ** }
  703. **
  704. ***************************************************************************
  705.  
  706. #define get(obj,attr,store)     GetAttr(attr, obj, store)
  707. #define set(obj,attr,value)     SetAttrsA(obj, [attr, value, TAG_DONE])
  708. #define nnset(obj,attr,value)    SetAttrsA(obj, [MUIA_NoNotify, MUI_TRUE, attr, value, TAG_DONE])
  709.  
  710. #define setmutex(obj,n)     set(obj, MUIA_Radio_Active, n)
  711. #define setcycle(obj,n)     set(obj, MUIA_Cycle_Active, n)
  712. #define setstring(obj,s)    set(obj, MUIA_String_Contents, s)
  713. #define setcheckmark(obj,b) set(obj, MUIA_Selected, b)
  714. #define setslider(obj,l)    set(obj, MUIA_Slider_Level, l)
  715.  
  716.     * A very useful macro for MUI taken from the iffparse.h file *
  717. #define MAKE_ID(a,b,c,d) (Shl(a,24) OR Shl(b,16) OR Shl(c,8) OR (d))
  718.  
  719.  
  720.  
  721. ****************************************************************************
  722. **
  723. ** For Boopsi Image Implementors Only:
  724. **
  725. ** If MUI is using a boopsi image object, it will send a special method
  726. ** immediately after object creation. This method has a parameter structure
  727. ** where the boopsi can fill in its minimum and maximum size and learn if
  728. ** its used in a horizontal or vertical context.
  729. **
  730. ** The boopsi image must use the method id (MUIM_BoopsiQuery) as return
  731. ** value. That's how MUI sees that the method is implemented.
  732. **
  733. ** Note: MUI does not depend on this method. If the boopsi image doesn't
  734. **         implement it, minimum size will be 0 and maximum size unlimited.
  735. **
  736. ****************************************************************************
  737.  
  738.         * this is send to the boopsi and *
  739.         * must be used as return value   *
  740. #define MUIM_BoopsiQuery $80427157
  741.  
  742.         * old structure name *
  743. #define MUIP_BoopsiQuery MUI_BoopsiQuery
  744.  
  745.         * object used in a horizontal *
  746.         * context (else vertical)     *
  747. #define MBQF_HORIZ 1
  748.  
  749.         * use this for unlimited MaxWidth/Height *
  750. #define MBQ_MUI_MAXMAX (10000)
  751.  
  752.  
  753.  
  754. ****************************************************************************
  755. ** Notify                                                                  **
  756. ****************************************************************************
  757.  
  758.     * Methods *
  759.  
  760. #define MUIM_CallHook                   $8042b96b
  761. #define MUIM_FindUData                   $8042c196
  762. #define MUIM_GetUData                   $8042ed0c
  763. #define MUIM_KillNotify                $8042d240
  764. #define MUIM_MultiSet                   $8042d356
  765. #define MUIM_Notify                    $8042c9cb
  766. #define MUIM_Set                       $8042549a
  767. #define MUIM_SetAsString               $80422590
  768. #define MUIM_SetUData                   $8042c920
  769. #define MUIM_WriteLong                   $80428d86
  770. #define MUIM_WriteString               $80424bf4
  771.  
  772.     * Attributes *
  773.  
  774. #define MUIA_AppMessage                 $80421955
  775. #define MUIA_HelpFile                    $80423a6e
  776. #define MUIA_HelpLine                    $8042a825
  777. #define MUIA_HelpNode                    $80420b85
  778. #define MUIA_NoNotify                    $804237f9
  779. #define MUIA_Revision                    $80427eaa
  780. #define MUIA_UserData                    $80420313
  781. #define MUIA_Version                    $80422301
  782.  
  783.  
  784.  
  785. ****************************************************************************
  786. ** Family                                                                  **
  787. ****************************************************************************
  788.  
  789.     * Methods *
  790.  
  791. #define MUIM_Family_AddHead            $8042e200
  792. #define MUIM_Family_AddTail            $8042d752
  793. #define MUIM_Family_Insert               $80424d34
  794. #define MUIM_Family_Remove               $8042f8a9
  795. #define MUIM_Family_Sort               $80421c49
  796. #define MUIM_Family_Transfer           $8042c14a
  797.  
  798.     * Attributes *
  799.  
  800. #define MUIA_Family_Child                $8042c696
  801.  
  802.  
  803.  
  804. ****************************************************************************
  805. ** Menustrip                                                              **
  806. ****************************************************************************
  807.  
  808.     * Attributes *
  809.  
  810. #define MUIA_Menustrip_Enabled            $8042815b
  811.  
  812.  
  813.  
  814. ****************************************************************************
  815. ** Menu                                                                   **
  816. ****************************************************************************
  817.  
  818.     * Attributes *
  819.  
  820. #define MUIA_Menu_Enabled                $8042ed48
  821. #define MUIA_Menu_Title                 $8042a0e3
  822.  
  823.  
  824.  
  825. ****************************************************************************
  826. ** Menuitem                                                               **
  827. ****************************************************************************
  828.  
  829.     * Attributes *
  830.  
  831. #define MUIA_Menuitem_Checked            $8042562a
  832. #define MUIA_Menuitem_Checkit            $80425ace
  833. #define MUIA_Menuitem_Enabled            $8042ae0f
  834. #define MUIA_Menuitem_Exclude            $80420bc6
  835. #define MUIA_Menuitem_Shortcut            $80422030
  836. #define MUIA_Menuitem_Title             $804218be
  837. #define MUIA_Menuitem_Toggle            $80424d5c
  838. #define MUIA_Menuitem_Trigger            $80426f32
  839.  
  840.  
  841.  
  842. ****************************************************************************
  843. ** Application                                                              **
  844. ****************************************************************************
  845.  
  846.     * Methods *
  847.  
  848. #define MUIM_Application_GetMenuCheck  $8042c0a7
  849. #define MUIM_Application_GetMenuState  $8042a58f
  850. #define MUIM_Application_Input           $8042d0f5
  851. #define MUIM_Application_InputBuffered $80427e59
  852. #define MUIM_Application_Load           $8042f90d
  853. #define MUIM_Application_PushMethod    $80429ef8
  854. #define MUIM_Application_ReturnID       $804276ef
  855. #define MUIM_Application_Save           $804227ef
  856. #define MUIM_Application_SetMenuCheck  $8042a707
  857. #define MUIM_Application_SetMenuState  $80428bef
  858. #define MUIM_Application_ShowHelp       $80426479
  859.  
  860.     * Attributes *
  861.  
  862. #define MUIA_Application_Active         $804260ab
  863. #define MUIA_Application_Author         $80424842
  864. #define MUIA_Application_Base            $8042e07a
  865. #define MUIA_Application_Broker         $8042dbce
  866. #define MUIA_Application_BrokerHook     $80428f4b
  867. #define MUIA_Application_BrokerPort     $8042e0ad
  868. #define MUIA_Application_BrokerPri        $8042c8d0
  869. #define MUIA_Application_Commands        $80428648
  870. #define MUIA_Application_Copyright        $8042ef4d
  871. #define MUIA_Application_Description    $80421fc6
  872. #define MUIA_Application_DiskObject     $804235cb
  873. #define MUIA_Application_DoubleStart    $80423bc6
  874. #define MUIA_Application_DropObject     $80421266
  875. #define MUIA_Application_ForceQuit        $804257df
  876. #define MUIA_Application_HelpFile        $804293f4
  877. #define MUIA_Application_Iconified        $8042a07f
  878. #define MUIA_Application_Menu            $80420e1f
  879. #define MUIA_Application_MenuAction     $80428961
  880. #define MUIA_Application_MenuHelp        $8042540b
  881. #define MUIA_Application_Menustrip        $804252d9
  882. #define MUIA_Application_RexxHook        $80427c42
  883. #define MUIA_Application_RexxMsg        $8042fd88
  884. #define MUIA_Application_RexxString     $8042d711
  885. #define MUIA_Application_SingleTask     $8042a2c8
  886. #define MUIA_Application_Sleep            $80425711
  887. #define MUIA_Application_Title            $804281b8
  888. #define MUIA_Application_Version        $8042b33f
  889. #define MUIA_Application_Window         $8042bfe0
  890.  
  891.  
  892.  
  893. ****************************************************************************
  894. ** Window                                                                  **
  895. ****************************************************************************
  896.  
  897.     * Methods *
  898.  
  899. #define MUIM_Window_GetMenuCheck       $80420414
  900. #define MUIM_Window_GetMenuState       $80420d2f
  901. #define MUIM_Window_ScreenToBack       $8042913d
  902. #define MUIM_Window_ScreenToFront       $804227a4
  903. #define MUIM_Window_SetCycleChain       $80426510
  904. #define MUIM_Window_SetMenuCheck       $80422243
  905. #define MUIM_Window_SetMenuState       $80422b5e
  906. #define MUIM_Window_ToBack               $8042152e
  907. #define MUIM_Window_ToFront            $8042554f
  908.  
  909.     * Attributes *
  910.  
  911. #define MUIA_Window_Activate            $80428d2f
  912. #define MUIA_Window_ActiveObject        $80427925
  913. #define MUIA_Window_AltHeight            $8042cce3
  914. #define MUIA_Window_AltLeftEdge         $80422d65
  915. #define MUIA_Window_AltTopEdge            $8042e99b
  916. #define MUIA_Window_AltWidth            $804260f4
  917. #define MUIA_Window_AppWindow            $804280cf
  918. #define MUIA_Window_Backdrop            $8042c0bb
  919. #define MUIA_Window_Borderless            $80429b79
  920. #define MUIA_Window_CloseGadget         $8042a110
  921. #define MUIA_Window_CloseRequest        $8042e86e
  922. #define MUIA_Window_DefaultObject        $804294d7
  923. #define MUIA_Window_DepthGadget         $80421923
  924. #define MUIA_Window_DragBar             $8042045d
  925. #define MUIA_Window_Height                $80425846
  926. #define MUIA_Window_ID                    $804201bd
  927. #define MUIA_Window_InputEvent            $804247d8
  928. #define MUIA_Window_LeftEdge            $80426c65
  929. #define MUIA_Window_Menu                $8042db94
  930. #define MUIA_Window_MenuAction            $80427521
  931. #define MUIA_Window_Menustrip            $8042855e
  932. #define MUIA_Window_NoMenus             $80429df5
  933. #define MUIA_Window_Open                $80428aa0
  934. #define MUIA_Window_PublicScreen        $804278e4
  935. #define MUIA_Window_RefWindow            $804201f4
  936. #define MUIA_Window_RootObject            $8042cba5
  937. #define MUIA_Window_Screen                $8042df4f
  938. #define MUIA_Window_ScreenTitle         $804234b0
  939. #define MUIA_Window_SizeGadget            $8042e33d
  940. #define MUIA_Window_SizeRight            $80424780
  941. #define MUIA_Window_Sleep                $8042e7db
  942. #define MUIA_Window_Title                $8042ad3d
  943. #define MUIA_Window_TopEdge             $80427c66
  944. #define MUIA_Window_Width                $8042dcae
  945. #define MUIA_Window_Window                $80426a42
  946.  
  947. #define MUIV_Window_ActiveObject_None 0
  948. #define MUIV_Window_ActiveObject_Next -1
  949. #define MUIV_Window_ActiveObject_Prev -2
  950. #define MUIV_Window_AltHeight_MinMax(p) (0-(p))
  951. #define MUIV_Window_AltHeight_Visible(p) (-100-(p))
  952. #define MUIV_Window_AltHeight_Screen(p) (-200-(p))
  953. #define MUIV_Window_AltHeight_Scaled -1000
  954. #define MUIV_Window_AltLeftEdge_Centered -1
  955. #define MUIV_Window_AltLeftEdge_Moused -2
  956. #define MUIV_Window_AltLeftEdge_NoChange -1000
  957. #define MUIV_Window_AltTopEdge_Centered -1
  958. #define MUIV_Window_AltTopEdge_Moused -2
  959. #define MUIV_Window_AltTopEdge_Delta(p) (-3-(p))
  960. #define MUIV_Window_AltTopEdge_NoChange -1000
  961. #define MUIV_Window_AltWidth_MinMax(p) (0-(p))
  962. #define MUIV_Window_AltWidth_Visible(p) (-100-(p))
  963. #define MUIV_Window_AltWidth_Screen(p) (-200-(p))
  964. #define MUIV_Window_AltWidth_Scaled -1000
  965. #define MUIV_Window_Height_MinMax(p) (0-(p))
  966. #define MUIV_Window_Height_Visible(p) (-100-(p))
  967. #define MUIV_Window_Height_Screen(p) (-200-(p))
  968. #define MUIV_Window_Height_Scaled -1000
  969. #define MUIV_Window_Height_Default -1001
  970. #define MUIV_Window_LeftEdge_Centered -1
  971. #define MUIV_Window_LeftEdge_Moused -2
  972. #define MUIV_Window_Menu_NoMenu -1
  973. #define MUIV_Window_TopEdge_Centered -1
  974. #define MUIV_Window_TopEdge_Moused -2
  975. #define MUIV_Window_TopEdge_Delta(p) (-3-(p))
  976. #define MUIV_Window_Width_MinMax(p) (0-(p))
  977. #define MUIV_Window_Width_Visible(p) (-100-(p))
  978. #define MUIV_Window_Width_Screen(p) (-200-(p))
  979. #define MUIV_Window_Width_Scaled -1000
  980. #define MUIV_Window_Width_Default -1001
  981.  
  982.  
  983.  
  984. ****************************************************************************
  985. ** Area                                                                   **
  986. ****************************************************************************
  987.  
  988.     * Methods *
  989.  
  990. #define MUIM_AskMinMax                   $80423874
  991. #define MUIM_Cleanup                   $8042d985
  992. #define MUIM_Draw                       $80426f3f
  993. #define MUIM_HandleInput               $80422a1a
  994. #define MUIM_Hide                       $8042f20f
  995. #define MUIM_Setup                       $80428354
  996. #define MUIM_Show                       $8042cc84
  997.  
  998.     * Attributes *
  999.  
  1000. #define MUIA_ApplicationObject            $8042d3ee
  1001. #define MUIA_Background                 $8042545b
  1002. #define MUIA_BottomEdge                 $8042e552
  1003. #define MUIA_ControlChar                $8042120b
  1004. #define MUIA_Disabled                    $80423661
  1005. #define MUIA_ExportID                    $8042d76e
  1006. #define MUIA_FixHeight                    $8042a92b
  1007. #define MUIA_FixHeightTxt                $804276f2
  1008. #define MUIA_FixWidth                    $8042a3f1
  1009. #define MUIA_FixWidthTxt                $8042d044
  1010. #define MUIA_Font                        $8042be50
  1011. #define MUIA_Frame                        $8042ac64
  1012. #define MUIA_FramePhantomHoriz            $8042ed76
  1013. #define MUIA_FrameTitle                 $8042d1c7
  1014. #define MUIA_Height                     $80423237
  1015. #define MUIA_HorizWeight                $80426db9
  1016. #define MUIA_InnerBottom                $8042f2c0
  1017. #define MUIA_InnerLeft                    $804228f8
  1018. #define MUIA_InnerRight                 $804297ff
  1019. #define MUIA_InnerTop                    $80421eb6
  1020. #define MUIA_InputMode                    $8042fb04
  1021. #define MUIA_LeftEdge                    $8042bec6
  1022. #define MUIA_Pressed                    $80423535
  1023. #define MUIA_RightEdge                    $8042ba82
  1024. #define MUIA_Selected                    $8042654b
  1025. #define MUIA_ShowMe                     $80429ba8
  1026. #define MUIA_ShowSelState                $8042caac
  1027. #define MUIA_Timer                        $80426435
  1028. #define MUIA_TopEdge                    $8042509b
  1029. #define MUIA_VertWeight                 $804298d0
  1030. #define MUIA_Weight                     $80421d1f
  1031. #define MUIA_Width                        $8042b59c
  1032. #define MUIA_Window                     $80421591
  1033. #define MUIA_WindowObject                $8042669e
  1034.  
  1035. #define MUIV_Font_Inherit 0
  1036. #define MUIV_Font_Normal -1
  1037. #define MUIV_Font_List -2
  1038. #define MUIV_Font_Tiny -3
  1039. #define MUIV_Font_Fixed -4
  1040. #define MUIV_Font_Title -5
  1041. #define MUIV_Font_Big -6
  1042. #define MUIV_Frame_None 0
  1043. #define MUIV_Frame_Button 1
  1044. #define MUIV_Frame_ImageButton 2
  1045. #define MUIV_Frame_Text 3
  1046. #define MUIV_Frame_String 4
  1047. #define MUIV_Frame_ReadList 5
  1048. #define MUIV_Frame_InputList 6
  1049. #define MUIV_Frame_Prop 7
  1050. #define MUIV_Frame_Gauge 8
  1051. #define MUIV_Frame_Group 9
  1052. #define MUIV_Frame_PopUp 10
  1053. #define MUIV_Frame_Virtual 11
  1054. #define MUIV_Frame_Slider 12
  1055. #define MUIV_Frame_Count 13
  1056. #define MUIV_InputMode_None 0
  1057. #define MUIV_InputMode_RelVerify 1
  1058. #define MUIV_InputMode_Immediate 2
  1059. #define MUIV_InputMode_Toggle 3
  1060.  
  1061.  
  1062.  
  1063. ****************************************************************************
  1064. ** Rectangle                                                              **
  1065. ****************************************************************************
  1066.  
  1067.     * Attributes *
  1068.  
  1069. #define MUIA_Rectangle_HBar             $8042c943
  1070. #define MUIA_Rectangle_VBar             $80422204
  1071.  
  1072.  
  1073.  
  1074. ****************************************************************************
  1075. ** Image.mui                                                              **
  1076. ****************************************************************************
  1077.  
  1078.     * Attributes *
  1079.  
  1080. #define MUIA_Image_FontMatch            $8042815d
  1081. #define MUIA_Image_FontMatchHeight        $80429f26
  1082. #define MUIA_Image_FontMatchWidth        $804239bf
  1083. #define MUIA_Image_FreeHoriz            $8042da84
  1084. #define MUIA_Image_FreeVert             $8042ea28
  1085. #define MUIA_Image_OldImage             $80424f3d
  1086. #define MUIA_Image_Spec                 $804233d5
  1087. #define MUIA_Image_State                $8042a3ad
  1088.  
  1089.  
  1090.  
  1091. ****************************************************************************
  1092. ** Bitmap                                                                  **
  1093. ****************************************************************************
  1094.  
  1095.     * Attributes *
  1096.  
  1097. #define MUIA_Bitmap_Bitmap                $804279bd
  1098. #define MUIA_Bitmap_Height                $80421560
  1099. #define MUIA_Bitmap_MappingTable        $8042e23d
  1100. #define MUIA_Bitmap_SourceColors        $80425360
  1101. #define MUIA_Bitmap_Transparent         $80422805
  1102. #define MUIA_Bitmap_Width                $8042eb3a
  1103.  
  1104.  
  1105.  
  1106. ****************************************************************************
  1107. ** Bodychunk                                                              **
  1108. ****************************************************************************
  1109.  
  1110.     * Attributes *
  1111.  
  1112. #define MUIA_Bodychunk_Body             $8042ca67
  1113. #define MUIA_Bodychunk_Compression        $8042de5f
  1114. #define MUIA_Bodychunk_Depth            $8042c392
  1115. #define MUIA_Bodychunk_Masking            $80423b0e
  1116.  
  1117.  
  1118.  
  1119. ****************************************************************************
  1120. ** Text                                                                   **
  1121. ****************************************************************************
  1122.  
  1123.     * Attributes *
  1124.  
  1125. #define MUIA_Text_Contents                $8042f8dc
  1126. #define MUIA_Text_HiChar                $804218ff
  1127. #define MUIA_Text_PreParse                $8042566d
  1128. #define MUIA_Text_SetMax                $80424d0a
  1129. #define MUIA_Text_SetMin                $80424e10
  1130.  
  1131.  
  1132.  
  1133. ****************************************************************************
  1134. ** String                                                                  **
  1135. ****************************************************************************
  1136.  
  1137.     * Attributes *
  1138.  
  1139. #define MUIA_String_Accept                $8042e3e1
  1140. #define MUIA_String_Acknowledge         $8042026c
  1141. #define MUIA_String_AttachedList        $80420fd2
  1142. #define MUIA_String_BufferPos            $80428b6c
  1143. #define MUIA_String_Contents            $80428ffd
  1144. #define MUIA_String_DisplayPos            $8042ccbf
  1145. #define MUIA_String_EditHook            $80424c33
  1146. #define MUIA_String_Format                $80427484
  1147. #define MUIA_String_Integer             $80426e8a
  1148. #define MUIA_String_MaxLen                $80424984
  1149. #define MUIA_String_Reject                $8042179c
  1150. #define MUIA_String_Secret                $80428769
  1151.  
  1152. #define MUIV_String_Format_Left 0
  1153. #define MUIV_String_Format_Center 1
  1154. #define MUIV_String_Format_Right 2
  1155.  
  1156.  
  1157.  
  1158. ****************************************************************************
  1159. ** Prop                                                                   **
  1160. ****************************************************************************
  1161.  
  1162.     * Attributes *
  1163.  
  1164. #define MUIA_Prop_Entries                $8042fbdb
  1165. #define MUIA_Prop_First                 $8042d4b2
  1166. #define MUIA_Prop_Horiz                 $8042f4f3
  1167. #define MUIA_Prop_Slider                $80429c3a
  1168. #define MUIA_Prop_Visible                $8042fea6
  1169.  
  1170.  
  1171.  
  1172. ****************************************************************************
  1173. ** Gauge                                                                  **
  1174. ****************************************************************************
  1175.  
  1176.     * Attributes *
  1177.  
  1178. #define MUIA_Gauge_Current                $8042f0dd
  1179. #define MUIA_Gauge_Divide                $8042d8df
  1180. #define MUIA_Gauge_Horiz                $804232dd
  1181. #define MUIA_Gauge_InfoText             $8042bf15
  1182. #define MUIA_Gauge_Max                    $8042bcdb
  1183.  
  1184.  
  1185.  
  1186. ****************************************************************************
  1187. ** Scale                                                                  **
  1188. ****************************************************************************
  1189.  
  1190.     * Attributes *
  1191.  
  1192. #define MUIA_Scale_Horiz                $8042919a
  1193.  
  1194.  
  1195.  
  1196. ****************************************************************************
  1197. ** Boopsi                                                                  **
  1198. ****************************************************************************
  1199.  
  1200.     * Attributes *
  1201.  
  1202. #define MUIA_Boopsi_Class                $80426999
  1203. #define MUIA_Boopsi_ClassID             $8042bfa3
  1204. #define MUIA_Boopsi_MaxHeight            $8042757f
  1205. #define MUIA_Boopsi_MaxWidth            $8042bcb1
  1206. #define MUIA_Boopsi_MinHeight            $80422c93
  1207. #define MUIA_Boopsi_MinWidth            $80428fb2
  1208. #define MUIA_Boopsi_Object                $80420178
  1209. #define MUIA_Boopsi_Remember            $8042f4bd
  1210. #define MUIA_Boopsi_TagDrawInfo         $8042bae7
  1211. #define MUIA_Boopsi_TagScreen            $8042bc71
  1212. #define MUIA_Boopsi_TagWindow            $8042e11d
  1213.  
  1214.  
  1215.  
  1216. ****************************************************************************
  1217. ** Colorfield                                                              **
  1218. ****************************************************************************
  1219.  
  1220.     * Attributes *
  1221.  
  1222. #define MUIA_Colorfield_Blue            $8042d3b0
  1223. #define MUIA_Colorfield_Green            $80424466
  1224. #define MUIA_Colorfield_Pen             $8042713a
  1225. #define MUIA_Colorfield_Red             $804279f6
  1226. #define MUIA_Colorfield_RGB             $8042677a
  1227.  
  1228.  
  1229.  
  1230. ****************************************************************************
  1231. ** List                                                                   **
  1232. ****************************************************************************
  1233.  
  1234.     * Methods *
  1235.  
  1236. #define MUIM_List_Clear                $8042ad89
  1237. #define MUIM_List_Exchange               $8042468c
  1238. #define MUIM_List_GetEntry               $804280ec
  1239. #define MUIM_List_Insert               $80426c87
  1240. #define MUIM_List_InsertSingle           $804254d5
  1241. #define MUIM_List_Jump                   $8042baab
  1242. #define MUIM_List_NextSelected           $80425f17
  1243. #define MUIM_List_Redraw               $80427993
  1244. #define MUIM_List_Remove               $8042647e
  1245. #define MUIM_List_Select               $804252d8
  1246. #define MUIM_List_Sort                   $80422275
  1247.  
  1248.     * Attributes *
  1249.  
  1250. #define MUIA_List_Active                $8042391c
  1251. #define MUIA_List_AdjustHeight            $8042850d
  1252. #define MUIA_List_AdjustWidth            $8042354a
  1253. #define MUIA_List_CompareHook            $80425c14
  1254. #define MUIA_List_ConstructHook         $8042894f
  1255. #define MUIA_List_DestructHook            $804297ce
  1256. #define MUIA_List_DisplayHook            $8042b4d5
  1257. #define MUIA_List_Entries                $80421654
  1258. #define MUIA_List_First                 $804238d4
  1259. #define MUIA_List_Format                $80423c0a
  1260. #define MUIA_List_MultiTestHook         $8042c2c6
  1261. #define MUIA_List_Quiet                 $8042d8c7
  1262. #define MUIA_List_SourceArray            $8042c0a0
  1263. #define MUIA_List_Title                 $80423e66
  1264. #define MUIA_List_Visible                $8042191f
  1265.  
  1266. #define MUIV_List_Active_Off -1
  1267. #define MUIV_List_Active_Top -2
  1268. #define MUIV_List_Active_Bottom -3
  1269. #define MUIV_List_Active_Up -4
  1270. #define MUIV_List_Active_Down -5
  1271. #define MUIV_List_Active_PageUp -6
  1272. #define MUIV_List_Active_PageDown -7
  1273. #define MUIV_List_ConstructHook_String -1
  1274. #define MUIV_List_CopyHook_String -1
  1275. #define MUIV_List_CursorType_None 0
  1276. #define MUIV_List_CursorType_Bar 1
  1277. #define MUIV_List_CursorType_Rect 2
  1278. #define MUIV_List_DestructHook_String -1
  1279.  
  1280.  
  1281.  
  1282. ****************************************************************************
  1283. ** Floattext                                                              **
  1284. ****************************************************************************
  1285.  
  1286.     * Attributes *
  1287.  
  1288. #define MUIA_Floattext_Justify            $8042dc03
  1289. #define MUIA_Floattext_SkipChars        $80425c7d
  1290. #define MUIA_Floattext_TabSize            $80427d17
  1291. #define MUIA_Floattext_Text             $8042d16a
  1292.  
  1293.  
  1294.  
  1295. ****************************************************************************
  1296. ** Volumelist                                                              **
  1297. ****************************************************************************
  1298.  
  1299.  
  1300.  
  1301. ****************************************************************************
  1302. ** Scrmodelist                                                              **
  1303. ****************************************************************************
  1304.  
  1305.  
  1306.  
  1307. ****************************************************************************
  1308. ** Dirlist                                                                  **
  1309. ****************************************************************************
  1310.  
  1311.     * Methods *
  1312.  
  1313. #define MUIM_Dirlist_ReRead            $80422d71
  1314.  
  1315.     * Attributes *
  1316.  
  1317. #define MUIA_Dirlist_AcceptPattern        $8042760a
  1318. #define MUIA_Dirlist_Directory            $8042ea41
  1319. #define MUIA_Dirlist_DrawersOnly        $8042b379
  1320. #define MUIA_Dirlist_FilesOnly            $8042896a
  1321. #define MUIA_Dirlist_FilterDrawers        $80424ad2
  1322. #define MUIA_Dirlist_FilterHook         $8042ae19
  1323. #define MUIA_Dirlist_MultiSelDirs        $80428653
  1324. #define MUIA_Dirlist_NumBytes            $80429e26
  1325. #define MUIA_Dirlist_NumDrawers         $80429cb8
  1326. #define MUIA_Dirlist_NumFiles            $8042a6f0
  1327. #define MUIA_Dirlist_Path                $80426176
  1328. #define MUIA_Dirlist_RejectIcons        $80424808
  1329. #define MUIA_Dirlist_RejectPattern        $804259c7
  1330. #define MUIA_Dirlist_SortDirs            $8042bbb9
  1331. #define MUIA_Dirlist_SortHighLow        $80421896
  1332. #define MUIA_Dirlist_SortType            $804228bc
  1333. #define MUIA_Dirlist_Status             $804240de
  1334.  
  1335. #define MUIV_Dirlist_SortDirs_First 0
  1336. #define MUIV_Dirlist_SortDirs_Last 1
  1337. #define MUIV_Dirlist_SortDirs_Mix 2
  1338. #define MUIV_Dirlist_SortType_Name 0
  1339. #define MUIV_Dirlist_SortType_Date 1
  1340. #define MUIV_Dirlist_SortType_Size 2
  1341. #define MUIV_Dirlist_Status_Invalid 0
  1342. #define MUIV_Dirlist_Status_Reading 1
  1343. #define MUIV_Dirlist_Status_Valid 2
  1344.  
  1345.  
  1346.  
  1347. ****************************************************************************
  1348. ** Group                                                                  **
  1349. ****************************************************************************
  1350.  
  1351.     * Attributes *
  1352.  
  1353. #define MUIA_Group_ActivePage            $80424199
  1354. #define MUIA_Group_Child                $804226e6
  1355. #define MUIA_Group_Columns                $8042f416
  1356. #define MUIA_Group_Horiz                $8042536b
  1357. #define MUIA_Group_HorizSpacing         $8042c651
  1358. #define MUIA_Group_PageMode             $80421a5f
  1359. #define MUIA_Group_Rows                 $8042b68f
  1360. #define MUIA_Group_SameHeight            $8042037e
  1361. #define MUIA_Group_SameSize             $80420860
  1362. #define MUIA_Group_SameWidth            $8042b3ec
  1363. #define MUIA_Group_Spacing                $8042866d
  1364. #define MUIA_Group_VertSpacing            $8042e1bf
  1365.  
  1366.  
  1367.  
  1368. ****************************************************************************
  1369. ** Register                                                               **
  1370. ****************************************************************************
  1371.  
  1372.     * Attributes *
  1373.  
  1374. #define MUIA_Register_Frame             $8042349b
  1375. #define MUIA_Register_Titles            $804297ec
  1376.  
  1377.  
  1378.  
  1379. ****************************************************************************
  1380. ** Virtgroup                                                              **
  1381. ****************************************************************************
  1382.  
  1383.     * Attributes *
  1384.  
  1385. #define MUIA_Virtgroup_Height            $80423038
  1386. #define MUIA_Virtgroup_Left             $80429371
  1387. #define MUIA_Virtgroup_Top                $80425200
  1388. #define MUIA_Virtgroup_Width            $80427c49
  1389.  
  1390.  
  1391.  
  1392. ****************************************************************************
  1393. ** Scrollgroup                                                              **
  1394. ****************************************************************************
  1395.  
  1396.     * Attributes *
  1397.  
  1398. #define MUIA_Scrollgroup_Contents        $80421261
  1399.  
  1400.  
  1401.  
  1402. ****************************************************************************
  1403. ** Scrollbar                                                              **
  1404. ****************************************************************************
  1405.  
  1406.  
  1407.  
  1408. ****************************************************************************
  1409. ** Listview                                                               **
  1410. ****************************************************************************
  1411.  
  1412.     * Attributes *
  1413.  
  1414. #define MUIA_Listview_ClickColumn        $8042d1b3
  1415. #define MUIA_Listview_DefClickColumn    $8042b296
  1416. #define MUIA_Listview_DoubleClick        $80424635
  1417. #define MUIA_Listview_Input             $8042682d
  1418. #define MUIA_Listview_List                $8042bcce
  1419. #define MUIA_Listview_MultiSelect        $80427e08
  1420. #define MUIA_Listview_SelectChange        $8042178f
  1421.  
  1422. #define MUIV_Listview_MultiSelect_None 0
  1423. #define MUIV_Listview_MultiSelect_Default 1
  1424. #define MUIV_Listview_MultiSelect_Shifted 2
  1425. #define MUIV_Listview_MultiSelect_Always 3
  1426.  
  1427.  
  1428.  
  1429. ****************************************************************************
  1430. ** Radio                                                                  **
  1431. ****************************************************************************
  1432.  
  1433.     * Attributes *
  1434.  
  1435. #define MUIA_Radio_Active                $80429b41
  1436. #define MUIA_Radio_Entries                $8042b6a1
  1437.  
  1438.  
  1439.  
  1440. ****************************************************************************
  1441. ** Cycle                                                                  **
  1442. ****************************************************************************
  1443.  
  1444.     * Attributes *
  1445.  
  1446. #define MUIA_Cycle_Active                $80421788
  1447. #define MUIA_Cycle_Entries                $80420629
  1448.  
  1449. #define MUIV_Cycle_Active_Next -1
  1450. #define MUIV_Cycle_Active_Prev -2
  1451.  
  1452.  
  1453.  
  1454. ****************************************************************************
  1455. ** Slider                                                                  **
  1456. ****************************************************************************
  1457.  
  1458.     * Attributes *
  1459.  
  1460. #define MUIA_Slider_Level                $8042ae3a
  1461. #define MUIA_Slider_Max                 $8042d78a
  1462. #define MUIA_Slider_Min                 $8042e404
  1463. #define MUIA_Slider_Quiet                $80420b26
  1464. #define MUIA_Slider_Reverse             $8042f2a0
  1465.  
  1466.  
  1467.  
  1468. ****************************************************************************
  1469. ** Coloradjust                                                              **
  1470. ****************************************************************************
  1471.  
  1472.     * Attributes *
  1473.  
  1474. #define MUIA_Coloradjust_Blue            $8042b8a3
  1475. #define MUIA_Coloradjust_Green            $804285ab
  1476. #define MUIA_Coloradjust_ModeID         $8042ec59
  1477. #define MUIA_Coloradjust_Red            $80420eaa
  1478. #define MUIA_Coloradjust_RGB            $8042f899
  1479.  
  1480.  
  1481.  
  1482. ****************************************************************************
  1483. ** Palette                                                                  **
  1484. ****************************************************************************
  1485.  
  1486.     * Attributes *
  1487.  
  1488. #define MUIA_Palette_Entries            $8042a3d8
  1489. #define MUIA_Palette_Groupable            $80423e67
  1490. #define MUIA_Palette_Names                $8042c3a2
  1491.  
  1492.  
  1493.  
  1494. ****************************************************************************
  1495. ** Colorpanel                                                              **
  1496. ****************************************************************************
  1497.  
  1498.  
  1499.  
  1500. ****************************************************************************
  1501. ** Popstring                                                              **
  1502. ****************************************************************************
  1503.  
  1504.     * Methods *
  1505.  
  1506. #define MUIM_Popstring_Close           $8042dc52
  1507. #define MUIM_Popstring_Open            $804258ba
  1508.  
  1509.     * Attributes *
  1510.  
  1511. #define MUIA_Popstring_Button            $8042d0b9
  1512. #define MUIA_Popstring_CloseHook        $804256bf
  1513. #define MUIA_Popstring_OpenHook         $80429d00
  1514. #define MUIA_Popstring_String            $804239ea
  1515. #define MUIA_Popstring_Toggle            $80422b7a
  1516.  
  1517.  
  1518. ****************************************************************************
  1519. ** Popobject                                                              **
  1520. ****************************************************************************
  1521.  
  1522.     * Attributes *
  1523.  
  1524. #define MUIA_Popobject_Follow            $80424cb5
  1525. #define MUIA_Popobject_Light            $8042a5a3
  1526. #define MUIA_Popobject_Object            $804293e3
  1527. #define MUIA_Popobject_ObjStrHook        $8042db44
  1528. #define MUIA_Popobject_StrObjHook        $8042fbe1
  1529. #define MUIA_Popobject_Volatile         $804252ec
  1530.  
  1531.  
  1532. ****************************************************************************
  1533. ** Poplist                                                                  **
  1534. ****************************************************************************
  1535.  
  1536.     * Attributes *
  1537.  
  1538. #define MUIA_Poplist_Array                0x8042084c
  1539.  
  1540.  
  1541.  
  1542. ****************************************************************************
  1543. ** Popasl                                                                  **
  1544. ****************************************************************************
  1545.  
  1546.     * Attributes *
  1547.  
  1548. #define MUIA_Popasl_Active                $80421b37
  1549. #define MUIA_Popasl_StartHook            $8042b703
  1550. #define MUIA_Popasl_StopHook            $8042d8d2
  1551. #define MUIA_Popasl_Type                $8042df3d
  1552.  
  1553.  
  1554.  
  1555. **************************************************************************
  1556. ** Structures and Macros for creating custom classes.
  1557. **************************************************************************
  1558.  
  1559. **
  1560. ** GENERAL NOTES:
  1561. **
  1562. ** - Everything described in this header file is only valid within
  1563. **     MUI classes. You may never use any of these things out of
  1564. **     a class, e.g. in a traditional MUI application.
  1565. **
  1566. ** - Except when otherwise stated, all structures are strictly read only.
  1567. **
  1568.  
  1569.         * use this if a dimension is not limited. *
  1570. #define MUI_MAXMAX 10000
  1571.  
  1572.                 * Definitions for mad_Flags, other flags are private *
  1573.  
  1574.         * completely redraw yourself *
  1575. #define MADF_DRAWOBJECT        1
  1576.         * only update yourself *
  1577. #define MADF_DRAWUPDATE        2
  1578.  
  1579.  
  1580.                 * MUI's draw pens *
  1581.  
  1582. #define MPEN_SHINE        0
  1583. #define MPEN_HALFSHINE    1
  1584. #define MPEN_BACKGROUND 2
  1585. #define MPEN_HALFSHADOW 3
  1586. #define MPEN_SHADOW     4
  1587. #define MPEN_TEXT        5
  1588. #define MPEN_FILL        6
  1589. #define MPEN_ACTIVEOBJ    7
  1590. #define MPEN_COUNT        8
  1591.  
  1592.  
  1593.         * User configurable keyboard events coming with MUIM_HandleInput *
  1594.  
  1595.     * not a real key, faked when MUIKEY_PRESS is released *
  1596. #define MUIKEY_RELEASE        -2
  1597. #define MUIKEY_NONE        -1
  1598. #define MUIKEY_PRESS        0
  1599. #define MUIKEY_TOGGLE        1
  1600. #define MUIKEY_UP        2
  1601. #define MUIKEY_DOWN        3
  1602. #define MUIKEY_PAGEUP        4
  1603. #define MUIKEY_PAGEDOWN        5
  1604. #define MUIKEY_TOP        6
  1605. #define MUIKEY_BOTTOM        7
  1606. #define MUIKEY_LEFT        8
  1607. #define MUIKEY_RIGHT        9
  1608. #define MUIKEY_WORDLEFT        10
  1609. #define MUIKEY_WORDRIGHT    11
  1610. #define MUIKEY_LINESTART    12
  1611. #define MUIKEY_LINEEND        13
  1612. #define MUIKEY_GADGET_NEXT    14
  1613. #define MUIKEY_GADGET_PREV    15
  1614. #define MUIKEY_GADGET_OFF    16
  1615. #define MUIKEY_WINDOW_CLOSE    17
  1616. #define MUIKEY_WINDOW_NEXT    18
  1617. #define MUIKEY_WINDOW_PREV    19
  1618. #define MUIKEY_HELP        20
  1619. #define MUIKEY_COUNT            21
  1620.